【FFmpeg × バッチ処理】SNS用「縦スライドショー動画」を一発生成する方法
こんにちは、YPO industryです。
今回は、SNS用の縦長スライドショー動画を自動生成するバッチ処理を作成しました。
TikTok や Instagram Reels、YouTube Shorts など、縦動画に対応したSNSにそのまま使えます。

🎬 やりたいこと
- 縦型(9:16)のスライドショー動画を自動生成
- 画像ごとに0.8秒表示
- 常に同じ背景画像(base.jpg)を使う
- 各スライド画像は横幅に合わせてセンタリング配置
- テロップ「New Design」を画面下1/3に表示
- ワンクリックで動画
output.mp4
を作成!
📁 フォルダ構成
Desktop
└─ video_base
├─ base.jpg ← 背景に使う画像(1080×1920推奨)
├─ image1.jpg
├─ image2.jpg
└─ make_slideshow.bat ← バッチファイル(次で紹介)
💻 バッチファイルの内容(UTF-8で保存)
make_slideshow.bat
という名前で以下を保存してください:
@echo off
setlocal EnableDelayedExpansion
set "WORKDIR=%USERPROFILE%\Desktop\video_base"
cd /d "%WORKDIR%"
set "BACKGROUND=%WORKDIR%\base.jpg"
del /q list.txt 2>nul
del /q temp_slide_*.jpg temp_final_*.jpg 2>nul
set i=0
for %%f in (*.jpg *.jpeg *.png) do (
if /I not "%%f"=="base.jpg" (
set /a i+=1
set "SLIDE=temp_slide_!i!.jpg"
set "FINAL=temp_final_!i!.jpg"
ffmpeg -y -i "%%f" -vf "scale=1080:-1:flags=lanczos" "!SLIDE!"
ffmpeg -y -i "%BACKGROUND%" -i "!SLIDE!" -filter_complex "overlay=(W-w)/2:(H-h)/2" "!FINAL!"
if exist "!FINAL!" (
echo file '!FINAL!' >> list.txt
echo duration 0.8 >> list.txt
)
)
)
if exist "temp_final_%i%.jpg" (
echo file 'temp_final_%i%.jpg' >> list.txt
)
ffmpeg -y -f concat -safe 0 -i list.txt -vf "drawtext=text='New Design':fontfile='C\\:/Windows/Fonts/meiryo.ttc':fontcolor=white:fontsize=80:x=(w-text_w)/2:y=h/1.5:shadowcolor=black:shadowx=2:shadowy=2" -c:v libx264 -r 30 -pix_fmt yuv420p output.mp4
del /q temp_slide_*.jpg temp_final_*.jpg list.txt
echo 完了しました!output.mp4 が作成されました。
pause

📌 補足ポイント
ffmpeg
がインストールされている必要があります- テロップのフォントは
meiryo.ttc
(メイリオ)を使用 base.jpg
は素材から除外されるよう処理されています
✅ 出力サンプル
完成した動画は video_base/output.mp4
に保存されます。
そのままSNSへアップロード可能な「縦フルHD(1080×1920)」動画です。
🔄 応用アイデア
- テロップ文字をコマンド引数にして変更可能にする
- 背景をランダムにする
- BGMを追加する(
-i bgm.mp3
など) - フェードイン・アウトなどのトランジション効果を入れる
💬 まとめ
画像を並べて動画にするのって意外と手間ですよね?
でもこのバッチとFFmpegを組み合わせれば、画像を放り込んで1クリックで完成!
SNS投稿が一気に楽になりますよ。
